package com.kaizeli.website.pojo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kaizeli.website.pojo.base.BaseDO;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 项目验收单表
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("project_acceptance")
public class ProjectAcceptance extends BaseDO {

    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    private Integer id;

    /**
     * 验收单编号
     */
    private String acceptanceNo;

    /**
     * 项目ID
     */
    private Long projectId;

    /**
     * 项目名称（冗余字段）
     */
    private String projectName;

    /**
     * 项目编号（冗余字段）
     */
    private String projectCode;

    /**
     * 子项目名称（冗余字段）
     */
    private String subProjectName;

    /**
     * 对接人（冗余字段）
     */
    private String contactPerson;

    /**
     * 客户（冗余字段）
     */
    private String client;

    /**
     * 部门（冗余字段）
     */
    private String department;

    /**
     * 科室（冗余字段）
     */
    private String section;

    /**
     * 合同号（冗余字段）
     */
    private String contractNo;

    /**
     * 验收时间点
     */
    private LocalDate acceptanceDate;

    /**
     * 验收时间点优先级（1-最高，2-高，3-中，4-低，5-最低）
     */
    private Integer priority;

    /**
     * 开始时间
     */
    private LocalDate startDate;

    /**
     * 结束时间
     */
    private LocalDate endDate;

    /**
     * 工时类型（hour-时，day-天，month-月）
     */
    private String workType;

    /**
     * 验收人员ID
     */
    private Long acceptancePersonId;

    /**
     * 验收人员姓名（冗余字段）
     */
    private String acceptancePersonName;

    /**
     * 验收标准
     */
    private String acceptanceStandard;

    /**
     * 预算金额
     */
    private BigDecimal budgetAmount;

    /**
     * 验收金额
     */
    private BigDecimal acceptanceAmount;

    /**
     * 总工时
     */
    private BigDecimal totalHours;

    /**
     * 验收状态（待验收、验收中、已验收、验收失败）
     */
    private String status;

    /**
     * 已验收时间
     */
    private LocalDateTime acceptanceCompletionTime;

    /**
     * 验收附件URL（多个用逗号分隔）
     */
    private String attachmentUrls;

    /**
     * 备注
     */
    private String remark;
}